List = class()

function List:init()
    self.list = {}
end

function List:add(entity)
    table.insert(self.list,entity)
end

function List:remove(index_or_object)
    local t = type(index_or_object)
    if t == "number" or t == "string" then
        table.remove(self.list,index_or_object)
    else
        for k,body in pairs(self.list) do
            if body == index_or_object then
                table.remove(self.list,k)
                return
            end
        end
    end
end


-- 遍历每个元素，并执行操作
-- 传入参数:函数()
-- 函数的第一个参数为一个实体元素
function List:traversal(func)
    table.foreach(self.list,func)
end


function List:getSize()
    return #self.list
end

